#include "stdafx.h"
#include "master_service.h"

int main(int argc, char *argv[])
{
	acl::acl_cpp_init();

	master_service ms;

	// setup the configure
	ms.set_cfg_int(var_conf_int_tab)
		.set_cfg_int64(var_conf_int64_tab)
		.set_cfg_str(var_conf_str_tab)
		.set_cfg_bool(var_conf_bool_tab);

	if (argc == 1 || (argc >= 2 && strcasecmp(argv[1], "alone") == 0))
	{
		// 日志输出至标准输出
		acl::log::stdout_open(true);
		// 禁止生成 acl_master.log 日志
		acl::master_log_enable(false);
	
		FLAGS_colorlogtostderr = true; // log信息区分颜色
		FLAGS_logtostderr = 1;         // 允许log信息打印到屏幕		

		const char *addr = "|8888";

		if (argc >= 4)
		{
			addr = argv[3];
		}
		printf("listen: %s\r\n", addr);

		ms.run_alone(addr, argc >= 3 ? argv[2] : NULL);
	}
	else
	{
		// 日志输出至标准输出
		// acl::log::stdout_open(true);
		// 禁止生成 acl_master.log 日志
		acl::master_log_enable(false);

		FLAGS_logtostderr = 0;         // 不允许google log信息打印到屏幕
		//FLAGS_alsologtostderr = true;			   // 是否将日志输出到文件和stderr

#if defined(_WIN32) || defined(_WIN64)
		const char *addr = ":8887";

		acl::log::stdout_open(true);
		printf("listen: %s\r\n", addr);

		ms.run_alone(addr, NULL);
#else
		ms.run_daemon(argc, argv);
#endif
	}

	return 0;
}
